package com.spsoft.vatoutinv.enums;


import java.math.BigDecimal;

/**
 * 特定征税标签枚举（生成xml文件使用）
 *
 * @author cdl
 * @date 2024/05/09
 */
public enum TdzsBqEnum {


    _01("01", "不征税"),
    _02("02", "零税率"),
    _03("03", "差额开票"),
    _04("04", "免税"),
    _05("05", "简易计税"),
    _06("06", "减按");

    public final String key;
    public final String value;

    TdzsBqEnum(String key, String value) {
        this.key = key;
        this.value = value;
    }

    public String getKey() {
        return key;
    }

    public String getValue() {
        return value;
    }

    public static boolean isInclude(String key) {
        boolean include = false;
        for (TdzsBqEnum e : TdzsBqEnum.values()) {
            if (e.getKey().equals(key)) {
                include = true;
                break;
            }
        }
        return include;
    }

    public static String getValueByKey(String key) {
        String value = "";
        for (TdzsBqEnum e : TdzsBqEnum.values()) {
            if (e.getKey().equals(key)) {
                value = e.value;
            }
        }
        return value;
    }

    public static TdzsBqEnum getTdzsBq(YhzcbsEnum yhzcbsEnum,BigDecimal sl,String cezslxdm){
        //02:零税率 --- 明细中“税率”为0，且“税收优惠政策类型代码”不是“03”、“04”
        BigDecimal bigDecimal = new BigDecimal(BigDecimal.ZERO.toString());
        if(bigDecimal.compareTo(sl) == 0
                && !yhzcbsEnum.equals(YhzcbsEnum._03)
                &&!yhzcbsEnum.equals(YhzcbsEnum._04 )){
            return _02;
        }
        //03:差额开票 ---主表中“差额征税类型代码”是“01”、“02”
        if(CommonEnum.CEZS_01.getKey().equals(cezslxdm)
           || CommonEnum.CEZS_02.getKey().equals(cezslxdm)){
            return _03;
        }
        //01:不征税 --- 明细中“税收优惠政策类型代码”是“04”
        if(YhzcbsEnum._04.equals(yhzcbsEnum)){
            return _01;
        // 04:免税 --- 明细中“税收优惠政策类型代码”是“03”
        }else if(YhzcbsEnum._03.equals(yhzcbsEnum)){
            return _04;
        //05:简易计税 ---明细中“税收优惠政策类型代码”是“01”、“08”、“09”
        }else if(YhzcbsEnum._01.equals(yhzcbsEnum)
                  || YhzcbsEnum._08.equals(yhzcbsEnum)
                  || YhzcbsEnum._09.equals(yhzcbsEnum)){
            return _05;
        //06:减按 --- 明细中“税收优惠政策类型代码”是"10”
        }else if(YhzcbsEnum._10.equals(yhzcbsEnum)){
            return _06;
        }
        return null;
    }


}
